import { constantRoutes } from '@/router'
import { asyncRoutes } from '@/router'
const state = {
  routes: constantRoutes // 所有人默认拥有静态路由
}
const mutations = {
  setRoutes(state, newRoutes) {
    // 下面这样写业务不对 一定是在静态路由的基础上进行添加
    // 而不是向下面第一个那样，在原有的routes基础上添加
    // 张三用户基础路由+3个动态路由 => 李四 基础路由+3个动态路由【张三的】+2个动态路由 这样是错的
    // state.routes = [...state.routes, ...newRoutes]
    state.routes = [...constantRoutes, ...newRoutes]
  }
}
const actions = {
  filterRouter(context, menu) {
    const routes = []
    // key 是menu数组中的值
    menu.forEach(key => {
      // 筛选 key 和 所有动态路由的name值是否有相等
      // filter数组 记得return 如果无{} 就不需要return
      routes.push(...asyncRoutes.filter(obj => {
        return obj.name === key
      }))
    })
    console.log(routes)
    // 这里修改routes 给左侧菜单使用 vuex
    context.commit('setRoutes', routes)
    // 这里return routes 权限拦截处返回 给addRoutes方法使用
    return routes
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
